// 这里是通俗的解释 详情请前往官方文档查阅
module.exports = {
  ignores: [(commit) => commit.includes('init')],
  extends: ['@commitlint/config-conventional'],
  rules: {
    // 信息以空格开头
    'body-leading-blank': [2, 'always'],
    'footer-leading-blank': [2, 'always'], // 信息最大长度
    'header-max-length': [2, 'always', 108], // 信息不能未空
    'subject-empty': [2, 'never'], // 信息类型不能未空
    'type-empty': [2, 'never'], // 提交信息的类型 下文有介绍
    'type-enum': [
      2,
      'always',
      [
        'feat', // 新增功能
        'fix', // 修复缺陷
        'perf', // 文档变更
        'style', // 代码格式（不影响功能，例如空格、分号等格式修正）
        'docs', // 文档变更
        'test', // 添加疏漏测试或已有测试改动
        'refactor', // 代码重构（不包括 bug 修复、功能新增）
        'build', // 构建流程、外部依赖变更（如升级 npm 包、修改 webpack 配置等）
        'ci', // 修改 CI 配置、脚本
        'chore', // 对构建过程或辅助工具和库的更改（不影响源文件、测试用例）
        'revert', // 回滚 commit
        'wip',
        'workflow',
        'types',
        'release',
      ],
    ],
  },
};
